home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / comp-packages.scm < prev    next >
Text File  |  1995-10-13  |  4KB  |  161 lines

  1. ; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees.  See file COPYING.
  2.  
  3.  
  4. ; Package definitions for byte-code compiler and initial image.
  5.  
  6.  
  7. ; Two basic structures needed to support the compiler.
  8.  
  9. (define-structure tables general-tables-interface
  10.   (open scheme-level-1
  11.     bummed-define-record-types
  12.     signals
  13.     features)    ; string-hash, make-immutable!
  14.   (files (big general-table))
  15.   (optimize auto-integrate))
  16.  
  17. (define-structure filenames filenames-interface
  18.   (open scheme-level-1 signals)
  19.   (files (big filename)))
  20.  
  21.  
  22. ; Type system
  23.  
  24. (define-structure meta-types meta-types-interface
  25.   (open scheme-level-2
  26.     bummed-define-record-types tables bitwise
  27.     features ;make-immutable!
  28.     util signals)
  29.   (files (bcomp mtype))
  30.   (optimize auto-integrate))
  31.  
  32. (define-structure interfaces interfaces-interface
  33.   (open scheme-level-2 syntactic meta-types
  34.     signals bummed-define-record-types tables
  35.     weak)
  36.   (files (bcomp interface))
  37.   (optimize auto-integrate))
  38.  
  39.  
  40. ; Transforms and operators
  41.  
  42. (define-structure syntactic
  43.     (compound-interface syntactic-interface
  44.             nodes-interface)
  45.   (open scheme-level-2 meta-types
  46.     signals bummed-define-record-types tables fluids
  47.     features        ;make-immutable!
  48.     ;; locations        ;location?
  49.     )
  50.   (files (bcomp syntax)
  51.      (bcomp schemify))
  52.   (optimize auto-integrate))
  53.  
  54. (define-structure usual-macros usual-macros-interface
  55.   (open scheme-level-2
  56.     syntactic    ;name?, $source-file-name
  57.     fluids        ;used in definition of %file-name%
  58.     tables signals)
  59.   (files (bcomp usual)
  60.      (bcomp rules)))
  61.  
  62. (define-structure reconstruction (export node-type reconstruct-type)
  63.   (open scheme-level-2
  64.     syntactic meta-types
  65.     util        ; last
  66.     signals)
  67.   (files (bcomp recon)))
  68.  
  69.  
  70. ; Package system
  71.  
  72. (define-structures ((packages packages-interface)
  73.             (packages-internal packages-internal-interface))
  74.   (open scheme-level-2 syntactic meta-types interfaces
  75.     signals bummed-define-record-types tables fluids
  76.     util features locations weak)
  77.   (files (bcomp package))
  78.   (optimize auto-integrate))
  79.  
  80. (define-structure scan scan-interface
  81.   (open scheme-level-2
  82.     packages syntactic
  83.     usual-macros        ; for dealing with (usual-transforms ...)
  84.     meta-types
  85.     packages-internal
  86.     signals fluids tables util
  87.     features        ;force-output
  88.     filenames)        ;translate
  89.   (files (bcomp scan)
  90.      (bcomp undefined))
  91.   (optimize auto-integrate))
  92.  
  93. ; Compiler back end
  94.  
  95. (define-structures ((segments segments-interface)
  96.             (debug-data debug-data-interface))
  97.   (open scheme-level-2 code-vectors templates
  98.     syntactic
  99.     architecture
  100.     bummed-define-record-types
  101.     features  ;make-immutable!
  102.     records util tables fluids signals)
  103.   (files (bcomp segment)
  104.      (bcomp state)
  105.      (bcomp ddata))
  106.   (optimize auto-integrate))
  107.  
  108. ; Byte-code compiler
  109.  
  110. (define-structure compiler compiler-interface
  111.   (open scheme-level-2 syntactic scan meta-types
  112.     architecture
  113.     packages
  114.     packages-internal       ;only for structure-package ?
  115.     interfaces        ;interface-ref
  116.     locations        ;make-undefined-location
  117.     reconstruction
  118.     segments
  119.     signals
  120.     tables
  121.     enumerated        ;enumerand->name
  122.     util            ;reduce
  123.     fluids 
  124.     features)        ;force-output
  125.   (files (bcomp comp)
  126.      (bcomp cprim)
  127.      (bcomp ctop))
  128.   (optimize auto-integrate))
  129.  
  130. ; DEFINE-STRUCTURE and friends
  131.  
  132. (define-structure defpackage defpackage-interface
  133.   (open scheme-level-2
  134.     packages syntactic usual-macros types
  135.     interfaces
  136.     source-file-names    ;%file-name%
  137.     signals            ;error
  138.     tables)
  139.   (for-syntax (open scheme-level-2 signals))     ;syntax-error
  140.   (files (bcomp module-language)
  141.      (bcomp config)))
  142.  
  143. (define-structure types types-interface  ;Typing language
  144.   (open scheme-level-2 meta-types syntactic loopholes)
  145.   (files (bcomp type))
  146.   ;; (optimize auto-integrate)  - doesn't work
  147.   )
  148.  
  149. (define-structure module-system (compound-interface defpackage-interface
  150.                             types-interface)
  151.   (open defpackage types))
  152.  
  153. ; Static linker
  154.  
  155. (define-structure inline inline-interface
  156.   (open scheme-level-2
  157.     syntactic
  158.     packages
  159.     signals)
  160.   (files (opt inline)))
  161.